In general, forward error correction (FEC) technologies protect data by encoding the original source data at the sender such that redundant data is added. A FEC decoding algorithm then allows the receiver to detect and possibly correct errors in the original data based solely on the data that has been received.
In modern multicast and broadcast service (MBS) communication systems, FEC technology may be generally employed in two complementary ways. First, FEC technology may be used at the physical layer by using the channel coding scheme to correct bit errors. Second, FEC technology may be used at an upper layer (e.g., an application layer or transport layer) using another coding scheme such as, for example, fountain code or raptor code, to recover lost packets. While the FEC at the physical layer attempts to ensure that all the actually received bits are correct, the FEC provided by the upper layer coding scheme attempts to recover missing data. The channel coding scheme may adopt turbo codes, convolutional codes, LDPC codes, etc., and the upper layer coding scheme may employ Reed-Solomon (RS) codes, fountain codes, raptor codes, Luby transform (LT) codes, Tornado codes, etc. Raptor codes, for example, have been adopted into multiple standards for both file delivery and streaming applications, including the 3GPP MBMS standards (Third Generation Partnership Program Multimedia Broadcast/Multicast Service) for broadcast file delivery and streaming services, the DVB-H IPDC standard (Digital Video Broadcast Handheld Internet Protocol Datacast), the DVB-IPI IPTV standard for delivering commercial TV services over an IP network, and multiple other standards.
The IEEE 802.16m standard organization, which is currently competing as a 4G standard, may also utilize this kind of complementary FEC technology to enhance the reliability and efficiency of the MBS. However, some problems may be induced by the complementary FEC method. FIG. 1 shows an exemplary coding scheme in which a code is used to encode multiple data blocks and generate more encoded blocks. The encoded block may be formed by modulo-2 adding some of data blocks or may be directly mapped into one of data blocks. Therefore, the data blocks may be mutually connected. For example, X=A, Y=A⊕B and Z=A⊕B⊕C at the encoder of the transmitter, where ⊕ represents the bit-wise modulo-2 addition. At the receiver, some known encoded blocks which are recovered may restore the related data blocks. In FIG. 1, for example, if X can be recovered, A is equal to X. If A is known, B may be obtained by calculating Y⊕A.
Given a data file, if the file is divided into more data blocks, the encoded blocks may have more possible combinations of data blocks. This may result in more robust coding. In other words, a smaller data block size may provide a more robust coding scheme. However, the coding scheme at the physical layer may not have a preference for this manner. Taking turbo code as an example, the minimum distance may be larger if the turbo codeword length is longer and better error performance may result. When the coding schemes with these two different characteristics are utilized, the mismatch may induce some problems. FIG. 2 provides an example illustrating the data flow between the physical (PHY) layer coding and the upper layer coding. At first, the data blocks may be encoded to form the encoded blocks by the upper layer coding scheme. In this example, five encoded blocks may be grouped and encoded by one FEC encoder. Finally, these bits in FEC encoded blocks may be modulated into symbols, and then the symbols may be mapped into the resource allocation. In other words, multiple data blocks may be not only mapped into a larger FEC block, but also mapped into large resources.
The larger blocks may imply larger storage and induce longer latency at the receiver. The data blocks may need a relatively long time to be collected on the receiver side since larger packets are received. In addition, while multiple data blocks may be mapped into one FEC block, a single FEC decoding failure may induce contiguous errors to multiple data blocks such that the upper layer coding scheme may not recover the missed data blocks. For example, in 3GPP TS 25.346, data block sizes of 384 bits, 1024 bits and 4096 bits are recommended. If a 6144 bit FEC block is used, one erroneous FEC block may cause 16 data block errors when a 384 bit data block is used. Additionally, if a few encoded blocks are further required by the upper layer decoding, an FEC block comprising many encoded blocks may induce resource waste. Moreover, the upper layer coding may require other error detection. However, more redundant bits may cause extra error detection overhead, e.g., CRC (cyclic redundancy check) overhead.
The bits in FEC encoded blocks may be modulated into modulation symbols, and then the modulation symbols may be mapped into the resource allocation. For OFDMA systems, the resources are composed of frequency domain (also known as subcarrier domain) and time domain (also known as subframe domain or OFDMA symbol domain). In IEEE 802.16m, a unit for resource allocation is defined as the resource unit (RU). An RU comprises Psc consecutive subcarriers by Nsym consecutive OFDMA symbols. Psc is 18 subcarriers and Ns), is 6, 7, and 5 OFDMA symbols for type-1, type-2, and type-3 AAI subframes respectively. Besides, several kinds of resource allocation unit are also defined, for example, a physical resource unit (PRU), a logical resource unit (LRU), a sub-band and a mini-band. The PRU and LRU have the same size as the RU. A sub-band and a mini-band comprise four and one adjacent PRUs, respectively.
In 3GPP Long Term Evolution (LTE) (3GPP TS 36.211), a unit for resource allocation is defined as the resource block (RB). An RB consists of 7 or 6 consecutive SC-FDMA symbols in the time domain by 12 consecutive subcarriers in the frequency domain.